Method and apparatus for code group identification and frame synchronization by use of reed-solomon decoder and reliability measurement for UMTS W-CDMA

ABSTRACT

A method and apparatus having a modified Reed-Solomon decoder is used for finding a specific code group used by a base station and the frame timing synchronization with the base station. The modified Reed-Solomon decoder uses a standard Reed-Solomon decoder and some reliability measurements computed from the received code word symbols. If the reliability of a received symbol is too low, this symbol is considered as erasure. By selecting code word symbols with higher reliabilities and erasing code word symbols with lower reliabilities, the symbol error probability is reduced and the performance is improved. Several modified Reed-Solomon decoders and a few decoding strategies are introduced in order to decode the received code word sequences with a power- and memory-effective method.

CROSS-REFERENCES TO RELATED APPLICATIONS

[0001] This is a non-provisional application of U.S. ProvisionalApplication No. 60/412,532, filed Sep. 19, 2002, which is incorporatedherewith by reference.

FIELD OF THE INVENTION

[0002] The present invention generally relates to an apparatus andmethod for code group identification and frame synchronization used indirect-sequence code division multiple access (DS-CDMA) communicationsystems, such as wide-band CDMA systems and 3rd generation partnershipproject (3GPP) system.

BACKGROUND OF THE INVENTION

[0003] Currently, DS-CDMA cellular systems are classified as inter-cellsynchronous systems with precise inter-cell synchronization andasynchronous systems without it. For inter-cell synchronous systems, anidentical long code is assigned to each base station, but with adifferent time offset. The initial cell search can be executed byperforming timing acquisition of the long code. The search for aperipheral cell on hand-over can be carried out quickly because themobile station can receive the offset information of the long code forthe peripheral base station from the current base station. Therefore,each base station requires a precise-time synchronization apparatus,such as the global position system (GPS) and rubidium backuposcillators. However, it is difficult to deploy GPS in basements orother locations where RF signals cannot easily reach.

[0004] In asynchronous systems such as wide-band CDMA and 3GPP, eachbase station adopts two synchronization channels such that a mobileterminal can establish the link and will not lose the connection onhand-offs by acquiring the synchronization codes transmitted insynchronization channels. The first synchronization channel (primarysynchronization channel, hereinafter PSCH) consists of an unmodulatedprimary synchronization code (denoted as C_(psc)) with length of 256chips transmitted once every slot. C_(psc) is the same for all basestations. This code is periodically transmitted such that it istime-aligned with the slot boundary of downlink channels. The secondarysynchronization channel (hereinafter SSCH) consists of a sequence of 15unmodulated secondary synchronization codes (C_(ssc) ^(i,0) to C_(ssc)^(i,14)) repeatedly transmitted in parallel with C_(psc) in the PSCH.The 15 secondary synchronization codes are sequentially transmitted onceevery frame. Each secondary synchronization code is chosen from a set of16 different orthogonal codes of length 256 chips. This sequence on theSSCH corresponds to one of the 64 different code groups which the basestation downlink scrambling code belongs to. The code allocation for abase station is shown in Table 1. These 64 sequences are constructedsuch that their cyclic-shifts are unique. In other words, if the countof cyclic-shifting is 0 to 14, all 960 (=64*15) possible sequencesgenerated by cyclic-shifting the 64 sequences are different from eachother. Base upon this property, cell search algorithms can be developedto uniquely determine both the code group and the frame timing.

[0005] During the initial cell search for the wide-band CDMA systemproposed by 3GPP, a mobile station searches for the base station towhich it has a lowest path loss. It then determines the downlinkscrambling code and frame synchronization of the base station. Thisinitial cell search is typically carried out in three steps:

[0006] Step 1: Slot Synchronization

[0007] During the first step of the initial cell search procedure, themobile station searches for the base station to which it has lowest pathloss via the primary synchronization code transmitted on the PSCH. Thisis typically done with a single matched filter matching to the primarysynchronization code. Since the primary synchronization code is commonto all the base stations, the power of the output signal of the matchedfilter should have peaks for each ray from each base station within areceivable range. The strongest peak corresponds to the most stable basestation for linking. Detecting the position of the strongest peak yieldsthe timing and the slot length that the strongest base stationmodulates. That is, this procedure allows the mobile station to acquireslot synchronization to the strongest base station.

[0008] Step 2: Frame Synchronization and Code-Group Identification

[0009] During the second step of the cell search procedure, the mobilestation utilizes the secondary synchronization code in the SSCH to findthe frame synchronization and the code group of the cell found in thefirst step. Since the secondary synchronization code is transmitted inparallel with the primary synchronization code, the slot timing of thesecondary synchronization channel can also be found during the firststep. The received signal at each time slot of the secondarysynchronization channel is consequently correlated with 16 possiblesecondary synchronization code word symbol signals for code word symbolidentification for code identification. The 15 consecutive code wordsymbols received and identified within one frame construct a receivedsequence. By sending the received sequence into a Reed-Solomon Decoderor by correlating the received sequence with the 960 possible sequences,the code group for the synchronized base station as well as the framesynchronization can be determined.

[0010] Step 3: Scrambling-Code Identification

[0011] During the last step of the cell search procedure, the mobileterminal determines the exact primary scrambling code used by the foundbase station. The primary scrambling code is typically identifiedthrough symbol-to-symbol correlation over the Common Pilot Channel(hereinafter CPICH) with all codes within the code group identified inthe second step. After the identification of the primary scramblingcode, the Primary Common Control Physical Channel (hereinafter PCCPCH)can be detected. Then the system- and cell-specific information can beread.

[0012] In summary, the main tasks of the initial cell search procedureare to (1) search for a cell with the strongest received power, (2)determine frame synchronization and code group, and (3) determine thedown-link primary scrambling code.

[0013] The cell search procedure (2) is the subject of this invention.The SSCH is used to determine frame synchronization. A frame of 15 SSCHsymbols forms a code word sequence taken from a codebook of 64 differentcode word sequences. The same code word sequence is repeated every framein a cell. The 64 code word sequences are chosen to have distinct codephase shifts, and any phase shift of a code word sequence is differentfrom all phase shifts of all other code word sequences. With theseproperties, the frame boundary can be detected by identifying thecorrect starting phase of the SSCH symbol sequence. In order to satisfythe above properties and maximize the minimum distance between differentcode word sequences, a (15,3) Comma-Free Reed-Solomon Code over GF(16)is proposed.

[0014] The standard Reed-Solomon decoder for (15,3) Comma-FreeReed-Solomon can be found in textbooks about error correcting codes andcan correct up to 6 symbol errors. However, due to the frequency error,channel fading, channel noise or other reasons, the number of symbolerrors may exceed 6 frequently. Therefore, the standard Reed-Solomondecoder fails to return a valid code word.

[0015] Another method is proposed by Yi-Ping Eric Wang in “IEEE Journalon Selected Areas in Communications vol. 18, no. 8 August 2000”. Wangproposed that after achieving slot synchronization, the receiveroperations start with correlating the received signal of SCH with all 16S-SCH sequences, and then accumulates SSCH correlations over N_(t) slotsaccording to the 64 Reed-Solomon code word sequences used, each with 15hypothesized frame boundaries. The total number of hypotheses istherefore 960. At the end, the hypothesis with the largest accumulatedmetric is chosen as the candidate for frame boundary-code group pair,which is given to next stage for scrambling code identification.

[0016] The method proposed by Wang has better performance, but it needslarge amount of memory and large amount of computation work. In ourinvention, we provide a power- and memory-effective method by use ofstandard Reed-Solomon decoder combined with reliability measurement.

SUMMARY OF THE INVENTION

[0017] The present invention has been made to overcome theabove-mentioned drawback of conventional frame synchronization and codegroup identification. An object of the present invention is to provide apower- and memory-effective method and apparatus for framesynchronization and code group identification. Accordingly, theapparatus of this invention comprises a correlator bank having aplurality of correlators, a hard decision and reliability measurementunit, a code sequence identifier, a frame boundary finder and a codegroup identification unit.

[0018] When each signal is received, the signal is sent to thecorrelator bank to identify the correlation between the current receivedsignal and 16 orthogonal code word symbols. The hard decision andreliability measurement unit then chooses the hard decision symbol withthe highest correlation, and the reliability is computed as a functionof 16 correlations.

[0019] It is also an object of the invention to provide a modifiedReed-Solomon decoder in the code sequence identifier to decode the codeword sequence. In a preferred embodiment, the modified Reed-Solomondecoder uses a threshold to determine if a code word symbol should beerased or not based on the reliability of the hard decision symbol. Whenthe number of valid symbols exceeds or equals to a threshold which isbetween 3 and 15, the whole code sequence is sent to a standardReed-Solomon error and erasure decoder for decoding.

[0020] In another embodiment, the modified Reed-Solomon decoder comparesthe number of erasures in a code word sequence with a threshold which isan integer between 0 and 12. If the number of erasures is not largerthan a threshold, the code sequence is sent to a standard Reed-Solomonerror and erasure decoder. If the decoder does not return a valid code,k additional code word symbols with lowest reliabilities are erased andthe new code sequence is sent to the standard Reed-Solomon error anderasure decoder again.

[0021] It is yet another object of the invention to further reduce thesymbol error probability and improve the performance of the codesequence identifier by using more than one frame of code word symbols.Accordingly, a symbol and reliability update unit is added in the codesequence identifier. Because the code word symbols are transmittedcyclically, after a frame of code words is received and recorded, thenext code word symbol ideally is identical to the first code word symbolin the recorded frame. The next code word symbol and its reliability areused to update the corresponding code word symbol in the recorded frame.When more than one frame of symbols are received, a decoding strategy isto update the hard decision symbols with the additional symbolsaccording to their reliabilities. The updated code sequence is thendecoded by the modified Reed-Solomon decoder.

[0022] Another decoding strategy for using more than one code wordsequence is to first receive two code word sequences and then generate anew code word sequence by comparing the two code word sequences. A codeword symbol is erased if the corresponding code word symbols in the tworeceived sequences are not identical. The new code word sequence is thensent to a standard Reed-Solomon error and erasure decoder.

[0023] An alternative decoding strategy includes using hard decision onmultiple frames of code word symbols with voting. A number of code wordsequences are received and their hard-decision symbol values arerecorded. A new code word sequence is generated by taking the majorityvote of the corresponding code word symbols in the multiple frames. Thenew code word sequence is then sent to a standard Reed-Solomon error anderasure decoder.

[0024] It is a further object of the invention to provide a method offrame synchronization. By observing the 64 code word sequences in Table1, the present invention found that the first code word symbol in aframe must have a smallest symbol value. If the smallest symbol value isunique, this symbol is the head of the frame. If the smallest symbolvalue is found twice, then the neighboring symbol after the head of theframe must have a smaller value than the neighboring symbol after thesmallest symbol found in the other slot.

[0025] It is yet another object to provide a memory efficient method foridentifying the code group of the code word sequence. The 64 code wordgroups that are valid code words of comma-free Reed-Solomon codes alsohave the feature that the code word sequence in each group can beuniquely identified by the first three code word symbols. By storing thefirst three code word symbols of each code word group in the 64 codeword groups, the code number of a received code word sequence can beidentified.

[0026] The foregoing and other objects, features, aspects and advantagesof the present invention will become better understood from a carefulreading of a detailed description provided herein below with appropriatereference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The present invention can be understood in more detail by readingthe subsequent detailed description in conjunction with the examples andreferences made to the accompanying drawings, wherein:

[0028]FIG. 1 illustrates the block diagram of the apparatus for codegroup identification and frame synchronization according to theinvention;

[0029]FIG. 2 illustrates the flow chart of an embodiment of modifiedReed-Solomon Decoder—“Threshold-Erase Decoder”;

[0030]FIG. 3 illustrates the flow chart of an alternative embodiment ofmodified Reed-Solomon Decoder—“Erase k by k Decoder”;

[0031]FIG. 4 illustrates the symbol and reliability update procedure;

[0032]FIG. 5 illustrates a decoding procedure after receiving more thanone frame;

[0033]FIG. 6 illustrates a decoding strategy of multi frames with harddecision only;

[0034]FIG. 7 illustrates a decoding strategy of multi frames withvoting; and

[0035]FIG. 8 illustrates the frame boundary finder.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0036] The gist of the present invention is using a standardReed-Solomon error-and-erasure decoder combined with reliabilitymeasurement for code group identification and frame synchronization inUMTS WCDMA systems. FIG. 1 shows a block diagram of the apparatus forframe synchronization and code group identification of this invention.The apparatus comprises a correlator bank having a plurality ofcorrelators 101, a hard decision and reliability measurement unit 102, acode sequence identifier 103, a frame boundary finder 104 and a codegroup identification unit 105.

[0037] It is known that each one of the 64 code groups of secondarysynchronization code corresponds to a valid code word from (15,3)Reed-Solomon code. In general, after 16 Walsh code correlators, thehard-decision symbol error rate is too high that in most cases thestandard Reed-Solomon decoder fails to return a valid code word.However, using a Reed-Solomon decoder has many advantages such as lessmemory requirement and low computation complexity.

[0038] According to this invention, when a signal is received, it issent to the correlator bank comprising 16 correlators 101 to identifythe correlation between the current received signal with the 16orthogonal code word symbols CS₀₁, CS₀₂, . . . , and CS₁₆. The outputcorrelation values from the 16 correlators at time m are {r⁰¹ _(m), r⁰²_(m), . . . , r¹⁶ _(m)}. The hard decision symbol value R_(m) at time mis chosen from {CS₀, CS₀₂, . . . , CS₁₆} with the highest correlation.The reliability measurement is defined as a function of the 16correlation values {r⁰¹ _(m), r⁰² _(m), . . . , r¹⁶ _(m)}, which is usedto measure how reliable the hard decision symbol value R_(m) is. Forexample, reliability measurement L_(m) can be defined as

L _(m)=max(r _(m) ⁰¹,r_(m) ⁰², . . . ,r_(m) ¹⁶).

[0039] or$L_{m} = {\frac{\max \left( {r_{m}^{01},r_{m}^{02},\quad \ldots \quad,r_{m}^{16}} \right)}{\sum\limits_{j = 1}^{16}\quad {r_{m}^{j}}}.}$

[0040] As shown in FIG. 1, the hard decision and reliability measurementunit 102 receives the correlation values from the plurality ofcorrelators 101 to choose a symbol R_(m) by making a hard decision. Areliability measurement L_(m) for the chosen symbol is then calculatedaccording to a pre-determined formula shown above.

[0041] Since each one of the 64 code groups is a valid code word from(15,3) Reed-Solomon codes, the minimum number of code word symbolsrequired is 3 for the Reed-Solomon decoder to return a valid code. Whenall code word symbols are received, this invention selects code wordsymbols with higher reliability measurements and erase others. Based onthe property of (15,3) Reed-Solomon codes, at most 12 code word symbolswith low reliability can be erased if all 15 code word symbols arereceived.

[0042] According to the present invention, the code sequence identifier103 comprises a modified Reed-Solomon decoder 111. A preferredembodiment of the modified Reed-Solomon decoder 111 is a“threshold-erase decoder” in which a threshold σ_(r) is used todetermine if a code word symbol should be erased based on thereliability measurement calculated in the hard decision and reliabilitymeasurement unit 102.

[0043]FIG. 2 shows a flow chart of the method of implementing thethreshold-erase decoder for the modified Reed-Solomon decoder 111. Whena new code word symbol is received, its hard decision symbol value andcorresponding reliability are recorded. If the reliability is less thanthe threshold σ_(r), the received code word symbol is considered aninvalid symbol, an erasure is declared, and the correspondingreliability is set to be −∞. If the reliability is larger than σ_(r),the hard decision symbol value is recorded and the number of validsymbol (VSN) is increased by 1.

[0044] When the number of valid symbols is larger than or equal to athreshold σ_(v), which is an integer between 3 and 15 and is a functionof the received symbol number (RSN), the whole code sequence is sent tothe standard Reed-Solomon error-and-erasure decoder. If the decodingprocess fails and the RSN is less than 15, another new code word symbolis received. If the reliability of the new symbol is larger than σ_(r),the new code sequence (with a new received code word symbol) is sent toa standard Reed-Solomon error and erasure decoder again. The wholedecoding process ends when the standard Reed-Solomon decoder returns avalid code word or exits when all 15 code word symbols are received.

[0045]FIG. 3 shows another preferred embodiment for the modifiedReed-Solomon decoder 111 which is named “erase k by k decoder”. A codesequence with 15 code symbols is sent into the “erase k by k decoder”.The hard-decision symbol values (R₀,R₁,R₂, . . . ,R₁₄) and theircorresponding reliabilities (L₀,L₁,L₂, . . . ,L₁₄) are recorded. Itshould be noted that some of the code symbols may not be received or maybe erased invalid symbols and, therefore, they are viewed as erasuresand their reliabilities are set to be −∞.

[0046] The total number of erasures e₀ is determined and compared with athreshold σ_(e), which is an integer between 0 and 12. If the number oferasures e₀ is not larger than σ_(e), the code sequence is sent to thestandard Reed-Solomon error and erasure decoder. If the decoding processfails, (L₀,L₁,L₂, . . . ,L₁₄) is first sorted in an ascending order(L₍₀₎,L₍₁₎,L₍₂₎, . . . ,L₍₁₄₎), wherein L₍₁₎ corresponds to R₍₁₎. Atthis moment, there are e₀ erasures and, thus, R₍₀₎, R₍₁₎, . . . ,R_((e0−1)) are erasures and L₍₀₎=L₍₁₎=. . . =L_((e0−1))=−∞. In L_((e0)),L_((e0+1)), . . . , L₍₁₄₎, the lowest k reliabilities (corresponding tosymbols which are not erasures) are L_((e0)), L_((e0+1)), . . . ,L_((e0+k−1)).

[0047] The k code word symbols R_((e0)), R_((e0+1)), . . . ,R_((e0+k−1)) with corresponding reliabilities L_((e0)), L_((e0+1)), . .. , L_((e0+k−1)) are then erased, wherein k is a positive integer and isa function of current e₀, i.e., it can be changed in each erase process.The number of erasure becomes e₀+k. Compare the current number oferasure (e₀+k) with the threshold σ_(e). If the number of erasure is notlarger than σ_(e), the new code sequence (with k more erasures) is sentto the Reed-Solomon decoder again. The whole erase-compare-decodeprocess ends when a valid code word is returned from the standardReed-Solomon error and erasure decoder or the number of erasure exceedsthe threshold σ_(e).

[0048] To further reduce the symbol error probability and improve theperformance of the code sequence identifier 103, the invention may usemore than one frame of code word symbols. Accordingly, a symbol andreliability update unit 112 may be added in the code sequence identifier103 as shown in FIG. 1. A method of updating the hard decision symbolvalue and reliability measurement when more than 15 symbols are receivedas well as a decoding procedure using more than one frame will bediscussed in the following.

[0049] Because the 15 code word symbols are cyclically transmitted, if acode sequence of 15 code word symbols fails to be decoded, it is notnecessary to abandon this code sequence. In other words, new code wordsymbols can be received and used to update the hard-decision symbolvalues and the corresponding reliability measurements. FIG. 4illustrates an embodiment of the method for updating the hard decisionsymbol value and reliability measurement.

[0050] Assume the previous received code word sequence of 15 codesymbols is (R₀, R₁, R₂, . . . , R₁₄) and the corresponding reliabilitiesis (L₀, L₁, L₂, . . . , L₁₄). Since the 15 code word symbols arecyclically transmitted, ideally,

R_(i)=R_(i mod 15) ∀i=15,16,17,

[0051] After a frame of code word symbols is received, the total RSN is15. When the 16th code word symbol is received, the hard-decision symbolvalue R′ (or R₁₅) and the corresponding reliability L′ (or L₁₅) arerecorded. Ideally, R′ should be equal to R₀. But in the presence of thenoise or other reasons, the hard-decision symbol values R₀ and R₁₅ maynot be equal. If the two hard-decision symbol values (R₀ and R₁₅) areequal, the reliability L₀ is updated by increasing the reliability for acertain amount. The amount of increased reliability is a function of theoriginal reliability L₀ and the current received reliability L₁₅. Forexample, these two reliabilities can be added to represent the newreliability,

L _(0(after updating)) =L ₀ +L ₁₅

[0052] However, if the two hard-decision symbol values (R₀ and R₁₅) arenot equal, the symbol and the corresponding reliability have to beupdated based on the result of comparing their correspondingreliabilities (L₀ and L₁₅). The hard-decision symbol value afterupdating is set to be the symbol value whose corresponding reliabilityis larger.$R_{0\quad {({{after}\quad {updating}})}} = \left\{ \begin{matrix}{R_{0},{{{if}\quad R_{0}} \neq {R_{15}\quad {and}\quad L_{0}} \geq L_{15}}} \\{R_{15},{{{if}\quad R_{0}} \neq {R_{15}\quad {and}\quad L_{0}} < L_{15}}}\end{matrix} \right.$

[0053] Also, the reliability after updating should be decreased. Theamount of decreased reliability is also a function of L₀ and L₁₅. Forexample,

L _(0(after updating))=max(L ₀ ,L ₁₅)−min(L ₀ ,L ₁₅)

[0054] By the same token, when the 17th code word symbol (R₁₆) isreceived (RSN equals to 16 now), ideally, R₁₆ should be equal to R₁. Thehard-decision symbol value and reliability update procedure can again beapplied to R₁ and R₁₆, and so on and so forth.

[0055] With the method of updating the hard decision symbol value andreliability for R_(i) and R_(i mod 15), the decoding procedure can thenbe introduced. FIG. 5 shows a decoding strategy when more than one frame(15 symbols) are received. When the original code word sequence of 15code word symbols R=(R₀, R₁, R₂, . . . , R₁₄) fails to be decoded, σ_(N)new code word symbols may be received. For example, if σ_(N) is equal to4, 4 new code word symbols (R₁₅, R₁₆, R₁₇, R₁₈) are received. Applyingthe symbol value and reliability update procedure to R₀ and R₁₅, R₁ andR₁₆, R₂ and R₁₇, R₃ and R₁₈, a new code word sequence R′ can beobtained. It is worth noting that even if the hard-decision symbolvalues may not be changed, the corresponding reliabilities may bedifferent.

[0056] The new code word sequence R′ and new reliability sequence L′ aresent to the modified Reed-Solomon decoder. If the new code word sequenceR′ fails to be decoded again, another σ_(N) new code word symbols may bereceived to obtain another new code word sequence R″ and new reliabilitysequence L″, wherein σ_(N) can be any positive integer and can bechanged for each update procedure. Again, R″ and L″ are sent to themodified Reed-Solomon decoder shown in FIG. 2 and FIG. 3 or thecombination of them. The whole decoding procedure ends when the modifiedReed-Solomon decoder returns a valid code word sequence. To avoid anendless loop due to a low signal-to-noise ratio or other reasons, alimitation of total RSN is used to terminate the loop. When the totalreceived symbol number exceeds a pre-determined integer value MAX_RSN,the current code sequence will be abandoned.

[0057]FIG. 6 shows another decoding strategy for more than one code wordsequence with hard decision only. Two code word sequences R ¹ and R ²are received first. Their hard-decision symbol values are R ¹=(R¹ ₀, R¹₁, R¹ ₂, . . . , R¹ ₁₄) and R ²=(R² ₀, R² ₁, R² ₂, . . . , R² ₁₄)respectively. Compare R¹ _(j) and R² _(j) for j=0, 1, 2, . . . , 14. Ifthe hard-decision symbol values (R¹ _(j) and R² ₁) are not the same,R_(j) is declared as erasure. After comparing 15 symbols in R ¹ and R ²,if the total number of erasures e₀ being declared erasure is smallerthan threshold σ_(e), which can be any integers from 1 to 13, the codeword sequence R=(R₀, R₁, R₂, . . . , R₁₄) with e₀ erasures is sent tothe standard Reed-Solomon error and erasure decoder.

[0058] If the code sequence R fails to be decoded, these two code wordsequences may simply be discarded or other decoding strategies may betried. On the other hand, another code word sequence R ³ with 15 codeword symbols may continue to be received. By comparing R ³ to theprevious recorded code word sequence R, a new resulting code wordsequence can be recorded in R′ using the procedure described above. Ifthe total number of erasures e₀ being declared in R′ is smaller than thethreshold σ_(e), which may be decreased, the code word sequence R′ withe₀ erasures is sent to the standard Reed-Solomon error and erasuredecoder. The whole procedure ends when the standard Reed-Solomon errorand erasure decoder returns a valid code word or the number of receivedcode word sequence is equal to a maximum number of code word sequencesallowed.

[0059]FIG. 7 shows an alternative decoding strategy using hard decisionwith voting. At the beginning, σ_(s) code word sequences are receivedand their hard-decision symbol values R ¹=(R¹ ₀, R¹ ₁, R¹ ₂, . . . , R¹₁₄), R ²=(R² ₀, R² ₁, R² ₂, . . . , R² ₁₄), . . . , R ^(σs)=(R^(σs) ₀,R^(σs) ₁, R^(σs) ₂, . . . , R^(σs) ₁₄) are recorded. For each code wordsymbol, the hard-decision symbol value R_(j), j=0, 1, 2, . . . , 14, isset to be the value by taking the majority vote of the set {R¹ _(j), R²_(j), R³ _(j), . . . , R^(σs) _(j)}. The resulting code word sequence isrecorded in R=(R₀, R₁, R₂, . . . , R₁₄) and sent to the standardReed-Solomon error and erasure decoder. If the decoding process fails, anew code word sequence may be received, and the majority vote is takenand then, the resulting code word sequence is decoded again. The wholedecoding strategy ends when the standard Reed-Solomon error and erasuredecoder returns a valid code word or the number of received code wordsequences equals the maximum number of code word sequence allowed.

[0060] As shown in FIG. 1, after the correct code sequence has beenidentified by the code sequence identifier 103, the frame boundary ofthe code sequence is determined by the frame boundary finder 104. FIG. 8illustrates the method to finding the frame boundary after theReed-Solomon decoder returns a valid code word sequence.

[0061] With reference to Table 1, it can be observed that the 64 codeword sequences from the 64 groups are valid code words of comma-freeReed-Solomon codes, i.e., all code words do not have internalrepetition. In addition, in each code word sequence of 15 code wordsymbols, the first code word symbol has the smallest symbol value, andthe smallest symbol value is found at most twice in this code wordsequence. If the smallest symbol value is unique, this symbol is thehead of the frame. If the smallest symbol value is found twice, then theneighboring symbol after the head of the frame must have a smaller valuethan the neighboring symbol after the smallest symbol found in the otherslot. For example, if the smallest symbol is found at slot number=0 andslot number=j, the symbol at the slot number=1 must have a smallersymbol value than the symbol at slot number=j+1.

[0062] As an example, the code word in Group 0 is (1, 1, 2, 8, 9, 10,15, 8, 10, 16, 2, 7, 15, 7, 16) in which the smallest symbol value is 1.The smallest symbol value is found twice in slot number=0 and slotnumber=1. Comparing the two symbol values of the next symbols, i.e.,slot number=1 and slot number=2, the symbol after the head of the frame,i.e., slot number=1, has a smaller symbol value. Take another example,the code word in Group 63 is (9, 12, 10, 15, 13, 14, 9, 14, 15, 11, 11,13, 12, 16, 10) in which the smallest symbol value is 9. The smallestsymbol value is found twice in slot number=0 and slot number=6.Comparing the two symbol values of the next symbols, i.e., slot number=1and slot number=7, the symbol after the head of the frame, i.e., slotnumber=1 has a smaller symbol value.

[0063] As discussed before, the valid code word sequence returned by theReed-Solomon decoder may be a cyclic shift of the original code wordsequence. The frame boundary can be determined by finding the smallesttwo symbol values in the code word sequence. If the smallest two symbolvalues are not equal, the head index of frame boundary is the index ofthe smallest symbol value. If the smallest two symbol values are equal,the head index can be determined by comparing the two symbol values ofthe next symbols. Based on the property introduced above, it is easy tofind the head index of the frame boundary.

[0064] Moreover, after the frame boundary has been determined, theapparatus of this invention identifies the code group using the codegroup identification unit 105. With reference to Table 1, it is observedthat the code word sequence in each group can be uniquely identified bythe first three code word symbols. By use of the property, only thefirst three columns of Table 1 have to be stored. By comparing the firstthree code word symbols, the code group number can be identified.Consequently, the memory requirement is much reduced in the code groupidentification unit of this invention.

[0065] It is worth mentioning that FIGS. 2 and 3 illustrate a“threshold-erase decoder” and an “erase k by k decoder” respectively forthe modified Reed-Solomon decoder 111 of this invention. Variation ofthese decoders can be made for the modified Reed-Solomon decoder. Forexample, the “threshold-erase decoder” and “erase k by k decoder” canalso be combined if desired.

[0066] Although the present invention has been described with referenceto the preferred embodiments, it will be understood that the inventionis not limited to the details described thereof. Various substitutionsand modifications have been suggested in the foregoing description, andothers will occur to those of ordinary skill in the art. Therefore, allsuch substitutions and modifications are intended to be embraced withinthe scope of the invention as defined in the appended claims.

What is claimed is:
 1. A method for code group identification and framesynchronization, comprising the steps of: (a) receiving a sequence ofcode word symbols; (b) generating a corrected code sequence from saidsequence of code word symbols; (c) determining a frame boundary of saidcorrected code sequence by finding a code head index in said correctedcode sequence; (d) forming a final code sequence which is a cyclic shiftof said corrected code sequence starting with a code word symbol havingsaid code head index; and (e) identifying a code group associated withsaid final code sequence.
 2. The method for code group identificationand frame synchronization as claimed in claim 1, wherein said step (b)further comprises the steps of: (b1) forming a sequence of hard decisionsymbols from said sequence of code word symbols, each hard decisionsymbol having a corresponding reliability; and (b2) generating acorrected code sequence using a modified Reed-Solomon decoder based onsaid sequence of hard decision symbols and corresponding reliabilities.3. The method for code group identification and frame synchronization asclaimed in claim 2, wherein a received code word symbol is correlatedwith a plurality of code words to form a plurality of correlations, ahard decision symbol of said received code word symbol is determinedbased on said plurality of correlations, and a corresponding reliabilityis computed based on said plurality of correlations.
 4. The method forcode group identification and frame synchronization as claimed in claim3, wherein a code word having a highest correlation among said pluralityof correlations with a received code word symbol is selected as a harddecision symbol and a corresponding reliability is the heightcorrelation.
 5. The method for code group identification and framesynchronization as claimed in claim 2, wherein said step (b2) furthercomprises the steps of: (i) receiving a new symbol from said sequence ofhard decision symbols; (ii) declaring said new symbol as a valid symbolif the corresponding reliability of said new symbol is greater than areliability threshold, or as an invalid symbol otherwise; (iii)recording total number of valid symbols; (iv) sending a code sequencebased on valid symbols to a Reed-Solomon error-and-erasure decoder ifsaid recorded total number of valid symbols is greater than or equal toa threshold of total number of valid symbols, or execute step (vi)otherwise; (v) generating said corrected code sequence and ending saidstep (b2) if said Reed-Solomon error-and-erasure decoder returnssuccessfully; (vi) ending said step (b2) if all symbols of said sequenceof hard decision symbols have been received, or returning to step (i)otherwise.
 6. The method for code group identification and framesynchronization as claimed in claim 5, wherein said sequence of harddecision symbols has at most 15 hard decision symbols, and saidthreshold of total number of valid symbols is an integer number between3 and 15 and is a function of the number of hard decision symbolsreceived.
 7. The method for code group identification and framesynchronization as claimed in claim 2, wherein said step (b2) furthercomprises the steps of: (i) receiving a sequence of hard decisionsymbols including valid symbols and invalid symbols; (ii) sending a codesequence based on valid symbols to a Reed-Solomon error-and-erasuredecoder if total number of invalid symbols in said sequence of harddecision symbols is not greater than a threshold of total number ofinvalid symbols, or ending said step (b2) otherwise; (iii) generatingsaid corrected code sequence and ending said step (b2) if saidReed-Solomon error-and-erasure decoder returns successfully; (iv)selecting k symbols from current valid symbols of said sequence of harddecision symbols, said k symbols having lowest k reliabilities among allcurrent valid symbols of said sequence of hard decision symbols; (v)declaring said k symbols invalid and determining total number of invalidsymbols from said sequence of hard decision symbols; (vi) returning tostep (ii) if total number of invalid symbols in said sequence of harddecision symbols is not greater than said threshold of total number ofinvalid symbols, or ending said step (b2) otherwise.
 8. The method forcode group identification and frame synchronization as claimed in claim7, wherein said sequence of hard decision symbols has 15 hard decisionsymbols, and said threshold of total number of invalid symbols is aninteger number between 0 and
 12. 9. The method for code groupidentification and frame synchronization as claimed in claim 1, whereinsaid step (c) comprises the steps of: (c1) finding two code word symbolswith smallest symbol values in said corrected code sequence, said twocode word symbols having indexes I and J respectively; (c2) setting saidcode head index to I if the code word symbol with index I has a valuesmaller than the code word symbol with index J, or setting said codehead index to J if the code word symbol with index J has a value smallerthan the code word symbol with index I, or continuing step (c3)otherwise; (c3) identifying two code word symbols with indexes I1 and J1and executing step (c4) if the code word symbol with index I has a valueequal to the code word symbol with index J, I1 being the remainder ofI+1 divided by n, J1 being the remainder of J+1 divided by n and n beingthe number of code word symbols in said corrected code sequence; and(c4) setting said code head index to I if the code word symbol withindex I1 has a value smaller than the code word symbol with index J1, orsetting said code head index to J otherwise.
 10. The method for codegroup identification and frame synchronization as claimed in claim 1,wherein said step (e) includes a matching method using only first threecode word symbols to determine a code group associated with said finalcode sequence.
 11. A method for generating a corrected code sequence,comprising the steps of: (a) receiving a frame of code word symbols; (b)forming a sequence of hard decision symbols from said frame of code wordsymbols, each hard decision symbol having a corresponding reliability;and (c) sending said sequence of hard decision symbols and correspondingreliabilities to a modified Reed-Solomon decoder; (d) generating acorrected code sequence using said modified Reed-Solomon decoder andending said method if said modified Reed-Solomon decoder returnssuccessfully; (e) ending said method if total number of code wordsymbols received is greater than a limit; (f) receiving a number ofadditional code word symbols; (g) updating said sequence of harddecision symbols and corresponding reliabilities based on saidadditional code word symbols; and (h) returning to step (c).
 12. Themethod for generating a corrected code sequence as claimed in claim 11,wherein an additional code word symbol with a receiving index m is usedis said step (g) according to the steps of: (g1) determining a new harddecision symbol and a new corresponding reliability for said additionalcode word symbol; (g2) identifying an associated hard decision symbolhaving a receiving index equal to the remainder of m divided by n, nbeing the number of symbols in said sequence of hard decision symbols;(g3) increasing the corresponding reliability of said associated harddecision symbol if said new hard decision symbol is identical to saidassociated hard decision symbol; (g4) decreasing the correspondingreliability of said associated hard decision symbol if said new harddecision symbol is not identical to said associated hard decision symboland said new corresponding reliability is less than the correspondingreliability of said associated hard decision symbol; and (g5) replacingsaid associated hard decision symbol and corresponding reliability withsaid new hard decision symbol and decreased new correspondingreliability if said new hard decision symbol is not identical to saidassociated hard decision symbol and said new corresponding reliabilityis greater than the corresponding reliability of said associated harddecision symbol.
 13. The method for generating a corrected code sequenceas claimed in claim 11, wherein said modified Reed-Solomon decoder insaid step (d) performs the steps of: (i) receiving a new symbol fromsaid sequence of hard decision symbols; (ii) declaring said new symbolas a valid symbol if the corresponding reliability of said new symbol isgreater than a reliability threshold, or as an invalid symbol otherwise;(iii) recording total number of valid symbols; (iv) sending a codesequence based on valid symbols to a Reed-Solomon error-and-erasuredecoder if said recorded total number of valid symbols is greater than athreshold of total number of valid symbols, or execute step (vi)otherwise; (v) generating said corrected code sequence and ending saidstep (d) if said Reed-Solomon error-and-erasure decoder returnssuccessfully; (vi) ending said step (d) if all symbols of said sequenceof hard decision symbols have been received, or returning to step (i)otherwise.
 14. The method for generating a corrected code sequence asclaimed in claim 13, wherein said sequence of hard decision symbols hasat most 15 hard decision symbols, and said threshold of total number ofvalid symbols is an integer number between 3 and 15 and is a function ofthe number of hard decision symbols received.
 15. The method forgenerating a corrected code sequence as claimed in claim 11, saidmodified Reed-Solomon decoder in said step (d) performs the steps of:(i) receiving a sequence of hard decision symbols including validsymbols and invalid symbols; (ii) sending a code sequence based on validsymbols to a Reed-Solomon error-and-erasure decoder if total number ofinvalid symbols in said sequence of hard decision symbols is not greaterthan a threshold of total number of invalid symbols, or ending said step(d) otherwise; (iii) generating said corrected code sequence and endingsaid step (d) if said Reed-Solomon error-and-erasure decoder returnssuccessfully; (iv) selecting k symbols from current valid symbols ofsaid sequence of hard decision symbols, said k symbols having lowest kreliabilities among all current valid symbols of said sequence of harddecision symbols; (v) declaring said k symbols invalid and determiningtotal number of invalid symbols from said sequence of hard decisionsymbols; (vi) returning to step (ii) if total number of invalid symbolsin said sequence of hard decision symbols is not greater than saidthreshold of total number of invalid symbols, or ending said step (d)otherwise.
 16. The method for generating a corrected code sequence asclaimed in claim 15, wherein said sequence of hard decision symbols hasat most 15 hard decision symbols, and said threshold of total number ofinvalid symbols is an integer number between 0 and
 12. 17. A method forgenerating a corrected code sequence, comprising the steps of: (a)receiving first and second frames of code word symbols; (b) formingfirst and second sequences of hard decision symbols from said first andsecond frames of code word symbols; (c) comparing each hard decisionsymbol in said first sequence with a corresponding hard decision symbolin said second sequence and declaring said hard decision symbol valid ifcorresponding hard decision symbols are identical and invalid if notidentical; (d) sending a code sequence based on valid hard decisionsymbols determined from step (c) to a Reed-Solomon error-and-erasuredecoder if total number of invalid hard decision symbols is less than athreshold of total number of invalid hard decision symbols, or endingsaid method otherwise; and (e) generating a corrected code sequence andending said method if said Reed-Solomon error-and-erasure decoderreturns successfully.
 18. A method for generating a corrected codesequence, comprising the steps of: (a) receiving a plurality of framesof code word symbols; (b) forming a plurality of sequences of harddecision symbols, each sequence corresponding to one of all receivedframes of code word symbols; (c) forming a new sequence of hard decisionsymbols, each hard decision symbol in said new sequence having a valuedetermined by taking a majority vote of corresponding hard decisionsymbols in said plurality of sequences; (d) sending said new sequence toa Reed-Solomon error-and-erasure decoder; and (e) generating a correctedcode sequence and ending said method if said Reed-Solomonerror-and-erasure decoder returns successfully.
 19. The method forgenerating a corrected code sequence as claimed in claim 18, furthercomprise the steps of: (f) receiving a new frame of code word symbol ifsaid Reed-Solomon error-and-erasure decoder fails to return a valid codesequence; and (g) returning to step (b).
 20. An apparatus for code groupidentification and frame synchronization, comprising: a plurality ofcorrelators receiving code word symbols and generating a plurality ofcorrelations; a hard decision and reliability measurement unit receivingsaid plurality of correlations and generating a sequence of harddecision symbols each having a corresponding reliability; a codesequence identifier receiving said sequence of hard decision symbols andcorresponding reliabilities, and generating a corrected code sequence; aframe boundary finder receiving said corrected code sequence, cyclicshifting and determining a final code sequence; and a code groupidentification unit receiving said final code sequence and determining acode group of said final code sequence.
 21. The apparatus for code groupidentification and frame synchronization as claimed in claim 20, whereinsaid code sequence identifier comprises a modified Reed-Solomon decoderfor decoding said sequence of hard decision symbols.
 22. The apparatusfor code group identification and frame synchronization as claimed inclaim 21, wherein said code sequence identifier further comprises asymbol and reliability update unit for updating code word symbols andcorresponding reliabilities.